//---------------------------------------------------------------------------- // File: C3DTriangleBox.h // Class: C3DTriangleBox -- Common Triangle Box. // Type: 3D Object // Author: Ken Anderson // Date: 12/15/04 // OS dependant: NA // Desc: A class designated to manage Triangle boxes. A triangle box is a set // of two triangles locked together to display individual textures. // // Required headers: // 1) C3DVertices.h -- A link to the vertices required to create the triangle boxes. //---------------------------------------------------------------------------- #ifndef __C3DTRIANGLEBOX__ #define __C3DTRIANGLEBOX__ /////////////// // INCLUDES // /////////////// #include "C3DVertices.h" class C3DTriangleBox { private: FRect m_frPosCoord; //Box Coordinates FRect m_frTexCoord; //Texture Coordinates FRect m_frNormalCoord; //Normal Coordinates. DRect m_drColorCoord; //Color Coordinates //Location on the z-axis. float m_fZ; //Toggles whether the vertices should be updated //or created as new. bool m_bUpdate; //Vertices C3DVertices* m_pfVerts; public: C3DTriangleBox(); ~C3DTriangleBox(){}; C3DERR Create(float fx=0.0f, float fy=0.0f, float fx2=0.0f, float fy2=0.0f, float fz=0.0f); FRect GetPositionCoords(){return m_frPosCoord;} FRect GetTextureCoords(){return m_frTexCoord;} DRect GetColorCoords(){return m_drColorCoord;} FRect GetNormalCoords(){return m_frNormalCoord;} float GetZCoord(){return m_fZ;} float GetHeight(); float GetWidth(); void SetPositionCoords(FRect frCoords); void SetTextureCoords(FRect frCoords); void SetNormalCoords(FRect frCoords); void SetColorCoords(DRect drCoords); void SetPositionCoords(float fx, float fy, float fx2, float fy2); void SetTextureCoords(float fu, float fv, float fu2, float fv2); void SetNormalCoords(float fx, float fy, float fx2, float fy2); void SetColorCoords(Dword x, Dword y, Dword x2, Dword y2); void SetZCoord(float fz){m_fZ = fz;} void SetHeight(float fHeight); void SetWidth(float fWidth); C3DERR Render(); private: bool CVC(); bool CTC(); bool CCC(); bool CNC(); }; #endif